package containerlogistik.implementation;

import containerlogistik.interfaces.*;

public abstract class AbstractShip implements Ship {
    
    Mass mass;
    Mass emptyMass;
    Mass maxMass;
    Length pos;
    Power power;
    Power maxPower;
    Level level;
    BoundingBox boundingBox;
    //@TODO: Add Hull, Engine, maxSpeed
        
    @Override
    public Mass mass() {
        return this.mass;
    }

    @Override
    public BoundingBox boundingBox() {
        return this.boundingBox;
    }

    @Override
    public Length pos() {
        return this.pos;
    }

    @Override
    public Power power() {
        return this.power;
    }

    @Override
    public Power maxPower() {
        return this.maxPower;
    }

    @Override
    public void setLevel(int level) {
        this.level = Values.levelOfPedal(level);
    }

    @Override
    public void moveStep(TimeDiff deltaTime) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public int compareTo(Ship o) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
